package cn.framelife.rainbow.db.entity;

import java.util.ArrayList;

/**
 * 用于作增加操作
 * 
 * @author 潘广伟 p_3er@qq.com  
 * @date 2014-1-15 上午9:57:20
 */
public class MenuList extends ArrayList<Menu> {
	private static final long serialVersionUID = 1L;

	/**
	 * 增加一下id不存在的节点
	 *
	 * @param menu
	 */
	public  void append(Menu menu){
		boolean exits = false;
		for(Menu old : this){
			if(old.getId().equals(menu.getId())){
				exits = true;
				break;
			}
		}
		
		if(!exits){
			this.add(menu);
		}
	}
	
	/**
	 * 获取子节点
	 *
	 * @param parent
	 * @return
	 */
	public  MenuList getChildren(Menu parent){
		MenuList list = new MenuList();
		for(Menu menu : this){
			if(menu.isLeaf() && (menu.getParentId() == null || menu.getParentId().equals(parent.getId()))){
				list.add(menu);
			}
		}
		return list;
	}
	
	/**
	 * 获取所有父节点
	 *
	 * @return
	 */
	public  MenuList getParents(){
		MenuList list = new MenuList();
		for(Menu menu : this){
			if(!menu.isLeaf()){
				list.add(menu);
			}
		}
		return list;
	}
}
